from EventManagement import EventUser
from TackGameEditorEvents import AddModules #@UnresolvedImport
from Tkinter import *
import TackTk

################################################################################
class tge_ImageManager(EventUser):
    ############################################################################
    def __init__(self):
        # Event Callbacks
        self.RegisterEvent(AddModules, self.AddImageManager)
        
        # Processing Data
        self._oImageManager
        self._dImages = {}
        self._nCurrentImage = None
    ############################################################################
    
    ############################################################################
    # Callbacks
    ############################################################################
    ############################################################################
    def AddImageManager(self, oEvent):
        """
        Adds the Image Manager Form to the Editor
        """
        oEditor = oEvent.GetEventData('oEditor')
        oEditor.AddModule('Images', self._CreateFrame(oEditor))
    ############################################################################
    
    ############################################################################
    def ChangeData(self, oEvent):
        """
        Called when the selection has changed in the Image list
        """
        oEditor = oEvent.GetEventData('oEditor')
        oEditor.AddModule('Images', self._CreateFrame(oEditor))
    ############################################################################
    
    ############################################################################
    # Private Methods
    ############################################################################
    ############################################################################
    def _CreateFrame(self, oEditor):
        """
        Creates the Image Manager Form
        
        param - oEditor : The Editor window object that the Form should use as
            parent
        """
        oForm = TackTk.Form(oEditor.GetMaster())
        # Create a Select List that will contain the list of images
        oForm.AddControl('Data', TackTk.SelectControl({}, rParent=oForm)).pack(side=LEFT, anchor=NW, fill=Y, padx=5, pady=5)
        oForm.GetControl('Data').bind("<ButtonRelease-1>", self.ChangeData)
        return oForm
    ############################################################################
################################################################################